#pragma once

#include "viml/value.h"
#include <vector>

namespace viml {

// 字符串长度
Value len_string_builtin(const std::vector<Value>& args);

// 字符串是否为空
Value empty_builtin(const std::vector<Value>& args);

// 查找子串第一次出现位置
Value stridx_builtin(const std::vector<Value>& args);

// 查找子串最后一次出现位置
Value strridx_builtin(const std::vector<Value>& args);

// 截取子字符串
Value strpart_builtin(const std::vector<Value>& args);

// 转为小写
Value tolower_builtin(const std::vector<Value>& args);

// 转为大写
Value toupper_builtin(const std::vector<Value>& args);

// 字符串替换
Value substitute_builtin(const std::vector<Value>& args);

// 字符串分割
Value split_builtin(const std::vector<Value>& args);

// 列表拼接为字符串
Value join_builtin(const std::vector<Value>& args);

// 任意类型转为字符串
Value string_builtin(const std::vector<Value>& args);

} // namespace viml